package com.polaris.live.im.sfs.bean.chat

import com.polaris.live.im.sfs.core.bean.AbstractMessage
import com.polaris.live.utils.CommonUtils.uuid
import com.polaris.live.common.cacha.CacheUtil

/**
 * 私聊消息
 *
 * @author Created by lucas on 2023/10/19 17:13
 * @since 1.0.0
 */
data class SingleMessage(
    /**
     * 接收者id，如果是向系统发送则为0
     */
    val recipient: Long,
    /**
     * 消息类型
     */
    val type: Long,
    /**
     * 消息内容
     */
    val content: String,
    /**
     * 消息载体  这个有可能由客户端填充，也可能由服务端填充
     */
    val payload: String? = null,
    /**
     * 消息拓展，由客户端处理，服务器只负责传递
     *
     * json格式字符串
     */
    val ext: String? = null,
    /**
     * 如果本地已经存在seqId则传递，其他情况为空
     */
    var seqId: Long? = null,
    /**
     * 消息唯一id
     */
    override val msgId: String = uuid(),
    /**
     * 消息发送时间戳
     */
    val timestamp: Long = CacheUtil.getServerTime(),
) : AbstractMessage